This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter. ~/workspace/bioinformatics_analysis/code/r_scripts/rna_seq_g6pd/TCGA_DESEQ.Rmd

setwd("/Users/efraimshine/Desktop/rna_seq/TCGA")
Warning: The working directory was changed to /Users/efraimshine/Desktop/rna_seq/TCGA inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
data("XenaData")
write.csv(XenaData, "00_tblXenaHubInfo.csv")

## step 5-a
GeneExpectedCnt_toil = XenaGenerate(subset = XenaHostNames == "toilHub") %>%
  XenaFilter(filterCohorts = "TCGA TARGET GTEx") %>%
  XenaFilter(filterDatasets = "TcgaTargetGtex_gene_expected_count");
XenaQuery(GeneExpectedCnt_toil) %>%
  XenaDownload(destdir = "./")
This will check url status, please be patient.
All downloaded files will under directory ./.
The 'trans_slash' option is FALSE, keep same directory structure as Xena.
Creating directories for datasets...
.//TcgaTargetGtex_gene_expected_count.gz, the file has been download!
library("UCSCXenaTools")
library("R.utils")
Loading required package: R.oo
Loading required package: R.methodsS3
R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help.
R.oo v1.27.0 (2024-11-01 18:00:02 UTC) successfully loaded. See ?R.oo for help.

Attaching package: ‘R.oo’

The following object is masked from ‘package:R.methodsS3’:

    throw

The following objects are masked from ‘package:methods’:

    getClasses, getMethods

The following objects are masked from ‘package:base’:

    attach, detach, load, save

R.utils v2.12.3 (2023-11-18 01:00:02 UTC) successfully loaded. See ?R.utils for help.

Attaching package: ‘R.utils’

The following object is masked from ‘package:utils’:

    timestamp

The following objects are masked from ‘package:base’:

    cat, commandArgs, getOption, isOpen, nullfile, parse, use, warnings
library("dplyr")

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library("data.table")
data.table 1.16.4 using 4 threads (see ?getDTthreads).  Latest news: r-datatable.com

Attaching package: ‘data.table’

The following objects are masked from ‘package:dplyr’:

    between, first, last
library("readr")
library("edgeR")
Loading required package: limma
setwd("/Users/efraimshine/Desktop/rna_seq/TCGA")
Warning: The working directory was changed to /Users/efraimshine/Desktop/rna_seq/TCGA inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
samples_gene_expression = fread("TcgaTargetGtex_gene_expected_count.gz");
Error: vector memory limit of 16.0 Gb reached, see mem.maxVSize()

setwd("/Users/efraimshine/Desktop/rna_seq/TCGA")
Warning: The working directory was changed to /Users/efraimshine/Desktop/rna_seq/TCGA inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
library("dplyr")
create_back_transformed_df <- function(sample_file, gene_expression_data) {
  # Read the sample list
  list_data <- read.csv(sample_file, header = FALSE)
  vector_data <- list_data$V1

  # Filter out excluded samples
  filtered_vector <- vector_data[vector_data %in% colnames(gene_expression_data)]


  # Filter the gene expression data
  filtered_df <- gene_expression_data %>% dplyr::select("sample", all_of(filtered_vector))
  rownames(filtered_df) <- filtered_df$sample
  
  # Backtransform the numeric columns
  backtransformed_df <- filtered_df %>%
    mutate(across(where(is.numeric), ~ 2^. - 1))
  rownames(backtransformed_df) <- backtransformed_df$sample
  # Set row names and remove the first column

  return(backtransformed_df)
}

g6pd_deleted_samples_file <- "g6pd_deleted_samples.csv"
#sample_file_g6pd_control_normal_expression_file = "g6pd_normal_samples_control_group.csv"
sample_file_g6pd_control_normal_expression_file = "G6PD_normal_cancer_type_based_selection_not_metastatic.csv"

# Call the function and store the result
g6pd_del_df <- create_back_transformed_df(g6pd_deleted_samples_file, samples_gene_expression)
g6pd_normal_control_df <- create_back_transformed_df(sample_file_g6pd_control_normal_expression_file, samples_gene_expression)
head(g6pd_normal_control_df[, 1:10], 10)
head(g6pd_del_df[, 1:10], 10)
g6pd_normal_control_df
g6pd_del_df
NA
# checking control data frame samples
# ctr_rnames <- colnames(g6pd_normal_control_df[,-1])
# ctr_orig_df <- read.csv("/Users/efraimshine/Desktop/rna_seq/TCGA/g6pd_high_exp_1.75to2.25_z_score_samples_names.csv")
# ctr_orig_df
# ctr_rnames
# common_names <- intersect(ctr_rnames,ctr_orig_df$Sample.ID)
# common_names
# print(common_names)
# Define the arguments
library("data.table")
data.table 1.16.4 using 4 threads (see ?getDTthreads).  Latest news: r-datatable.com

Attaching package: ‘data.table’

The following objects are masked from ‘package:dplyr’:

    between, first, last
library("readr")
library("dplyr")
library("edgeR")
Loading required package: limma
# Add prefixes to column names
colnames(g6pd_del_df) <- paste0("DELE_", colnames(g6pd_del_df))
colnames(g6pd_normal_control_df) <- paste0("NORM_", colnames(g6pd_normal_control_df))

# Combine the data frames by rows
merged_df <- merge(g6pd_del_df, g6pd_normal_control_df, by.x="DELE_sample",by.y = "NORM_sample")
colnames(merged_df)[colnames(merged_df) == "DELE_sample"] <- "sample"
# rownames(merged_df) <- merged_df$sample
# merged_df$sample <- NULL

# rownames(g6pd_del_df) <- g6pd_del_df$DELE_sample
# g6pd_del_df$DELE_sample <- NULL

# rownames(g6pd_normal_control_df) <- g6pd_normal_control_df$NORM_sample
# g6pd_normal_control_df$NORM_sample <- NULL
merged_df
NA
NA
merged_df_rownames <- merged_df[,-1]
rownames(merged_df_rownames) <- merged_df$sample
# merged_df_round_vector <- lapply(merged_df_rownames, round , digits = 2)
# merged_df_rownames_rounded <- data.frame(merged_df_round_vector)
#rownames(merged_df_rownames_rounded) <- rownames(merged_df_rownames)
merged_df_rownames_rounded <- merged_df_rownames %>% mutate(across(where(is.numeric), round, digits = 0))
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `across(where(is.numeric), round, digits = 0)`.
Caused by warning:
! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
Supply arguments directly to `.fns` through an anonymous function instead.

  # Previously
  across(a:b, mean, na.rm = TRUE)

  # Now
  across(a:b, \(x) mean(x, na.rm = TRUE))
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
matrix_for_deseq <- as.matrix(merged_df_rownames_rounded)
rownames(matrix_for_deseq) <- rownames(merged_df_rownames_rounded)
merged_df_rownames
merged_df_rownames_rounded

setwd("/Users/efraimshine/Desktop/rna_seq/TCGA")
Warning: The working directory was changed to /Users/efraimshine/Desktop/rna_seq/TCGA inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
metadata <- data.frame(sample_names <- colnames(merged_df[,-1]))
#row.names(metadata) <- colnames(merged_df)
  metadata <- mutate(metadata, G6PD_STATUS = ifelse(row_number() <= length(g6pd_del_df[,-1]), "del", "normal"))

metadata_rnames <- metadata
rownames(metadata_rnames) <- metadata$sample_names....colnames.merged_df
metadata_rnames$sample_names....colnames.merged_df....1.. <- NULL
metadata
metadata_rnames
NA
NA
NA
# metadata <- mutate(metadata, G6PD_STATUS = ifelse(row_number() <= length(g6pd_del_df[,-1]), "del", "normal"))

setwd("/Users/efraimshine/Desktop/rna_seq/TCGA")
Warning: The working directory was changed to /Users/efraimshine/Desktop/rna_seq/TCGA inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
metadata_rnames_for_info_merge <- metadata_rnames
metadata_rnames_for_info_merge
#expanding meta data information for analysis of g6pd deleted samples VS 200 g6pd normal samples from the center of g6pd expression information
library("dplyr")

samples_info_deleted_vs_200_patients <- read_tsv("g6pd_samples_info_deleted_vs_two_hundreds.tsv") 
Rows: 238 Columns: 63── Column specification ─────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (43): Study ID, Patient ID, Sample ID, Neoplasm Disease Stage American Joint Committee on Cancer Code, Am...
dbl (20): Diagnosis Age, Aneuploidy Score, Last Communication Contact from Initial Pathologic Diagnosis Date,...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
samples_info_deleted_vs_200_patients <- as.data.frame(samples_info_deleted_vs_200_patients) %>% dplyr::select(`Sample ID`,`Cancer Type`,`Cancer Type Detailed`)

# merege metadata with info df
row.names(metadata_rnames_for_info_merge) <- gsub("^[^_]*_", "", row.names(metadata_rnames_for_info_merge))

metadata_rnames_merged_with_info <- merge(metadata_rnames_for_info_merge,samples_info_deleted_vs_200_patients, by.x = "row.names", by.y = "Sample ID",all.x = TRUE)
row.names(metadata_rnames_merged_with_info) <- metadata_rnames_merged_with_info$Row.names
metadata_rnames_merged_with_info$Row.names <- NULL
metadata_rnames_merged_with_info <- metadata_rnames_merged_with_info[order(metadata_rnames_merged_with_info$G6PD_STATUS), ]
metadata_rnames_merged_with_info_orderd <- metadata_rnames_merged_with_info[match(row.names(metadata_rnames_for_info_merge), row.names(metadata_rnames_merged_with_info)), ]

row.names(metadata_rnames_merged_with_info_orderd) <- row.names(metadata_rnames)
colnames(metadata_rnames_merged_with_info_orderd)[2] <- "cancer_type"
colnames(metadata_rnames_merged_with_info_orderd)[3] <- "cancer_type_detailed"

metadata_rnames_merged_with_info_orderd$cancer_type <- as.factor(metadata_rnames_merged_with_info_orderd$cancer_type)
metadata_rnames_merged_with_info_orderd$cancer_type_detailed <- as.factor(metadata_rnames_merged_with_info_orderd$cancer_type_detailed)
metadata_rnames_merged_with_info
metadata_rnames_merged_with_info_orderd
NA
names_df <- as.data.frame(data_col <- colnames(matrix_for_deseq),metadatarows <- rownames(metadata_rnames))
names_df$`data_col <- colnames(matrix_for_deseq)` == rownames(names_df)
   [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
  [22] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
  [43] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
  [64] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
  [85] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [106] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [127] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [148] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [169] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [190] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [211] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [232] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [253] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [274] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [295] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [316] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [337] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [358] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [379] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [400] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [421] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [442] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [463] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [484] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [505] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [526] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [547] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [568] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [589] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [610] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [631] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [652] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [673] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [694] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [715] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [736] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [757] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [778] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [799] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [820] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [841] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [862] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [883] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [904] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [925] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [946] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [967] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [988] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [ reached getOption("max.print") -- omitted 340 entries ]
names_df
library("DESeq2")
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics

Attaching package: ‘BiocGenerics’

The following object is masked from ‘package:limma’:

    plotMA

The following objects are masked from ‘package:dplyr’:

    combine, intersect, setdiff, union

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, aperm, append, as.data.frame, basename, cbind, colnames, dirname, do.call,
    duplicated, eval, evalq, Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply, Map,
    mapply, match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind,
    Reduce, rownames, sapply, setdiff, table, tapply, union, unique, unsplit, which.max, which.min


Attaching package: ‘S4Vectors’

The following objects are masked from ‘package:data.table’:

    first, second

The following objects are masked from ‘package:dplyr’:

    first, rename

The following object is masked from ‘package:utils’:

    findMatches

The following objects are masked from ‘package:base’:

    expand.grid, I, unname

Loading required package: IRanges

Attaching package: ‘IRanges’

The following object is masked from ‘package:data.table’:

    shift

The following objects are masked from ‘package:dplyr’:

    collapse, desc, slice

Loading required package: GenomicRanges
Loading required package: GenomeInfoDb
Loading required package: SummarizedExperiment
Loading required package: MatrixGenerics
Loading required package: matrixStats

Attaching package: ‘matrixStats’

The following object is masked from ‘package:dplyr’:

    count


Attaching package: ‘MatrixGenerics’

The following objects are masked from ‘package:matrixStats’:

    colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse, colCounts, colCummaxs, colCummins,
    colCumprods, colCumsums, colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs, colMads,
    colMaxs, colMeans2, colMedians, colMins, colOrderStats, colProds, colQuantiles, colRanges,
    colRanks, colSdDiffs, colSds, colSums2, colTabulates, colVarDiffs, colVars, colWeightedMads,
    colWeightedMeans, colWeightedMedians, colWeightedSds, colWeightedVars, rowAlls, rowAnyNAs,
    rowAnys, rowAvgsPerColSet, rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods,
    rowCumsums, rowDiffs, rowIQRDiffs, rowIQRs, rowLogSumExps, rowMadDiffs, rowMads, rowMaxs,
    rowMeans2, rowMedians, rowMins, rowOrderStats, rowProds, rowQuantiles, rowRanges, rowRanks,
    rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars, rowWeightedMads,
    rowWeightedMeans, rowWeightedMedians, rowWeightedSds, rowWeightedVars

Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with 'browseVignettes()'. To cite Bioconductor,
    see 'citation("Biobase")', and for packages 'citation("pkgname")'.


Attaching package: ‘Biobase’

The following object is masked from ‘package:MatrixGenerics’:

    rowMedians

The following objects are masked from ‘package:matrixStats’:

    anyMissing, rowMedians

The following object is masked from ‘package:UCSCXenaTools’:

    samples
dds <- DESeqDataSetFromMatrix(countData = matrix_for_deseq,
                              colData = metadata_rnames,
                              design = ~ G6PD_STATUS)
converting counts to integer mode
Warning: some variables in design formula are characters, converting to factors
dds$G6PD_STATUS <- relevel(dds$G6PD_STATUS, ref = "normal")
dds
class: DESeqDataSet 
dim: 38608 1340 
metadata(1): version
assays(1): counts
rownames(38608): ENSG00000000938.12 ENSG00000000971.15 ... ENSGR0000280767.2 ENSGR0000281849.2
rowData names(0):
colnames(1340): DELE_TCGA-OR-A5LC-01 DELE_TCGA-DK-A1AE-01 ... NORM_TCGA-ZS-A9CD-01
  NORM_TCGA-ZS-A9CF-01
colData names(1): G6PD_STATUS
dds <- DESeq(dds)
estimating size factors
estimating dispersions
gene-wise dispersion estimates
mean-dispersion relationship
final dispersion estimates
fitting model and testing
Error: vector memory limit of 16.0 Gb reached, see mem.maxVSize()
resultsNames(dds)
[1] "Intercept"                 "G6PD_STATUS_del_vs_normal"
resOrdered <- res[order(res$pvalue),]
summary(res)

out of 34661 with nonzero total read count
adjusted p-value < 0.1
LFC > 0 (up)       : 1366, 3.9%
LFC < 0 (down)     : 1957, 5.6%
outliers [1]       : 0, 0%
low counts [2]     : 14695, 42%
(mean count < 1)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results
sum(res$padj < 0.05, na.rm=TRUE)
[1] 2394
res05 <- results(dds, alpha=0.05)
summary(res05)

out of 34661 with nonzero total read count
adjusted p-value < 0.05
LFC > 0 (up)       : 989, 2.9%
LFC < 0 (down)     : 1437, 4.1%
outliers [1]       : 0, 0%
low counts [2]     : 15363, 44%
(mean count < 1)
[1] see 'cooksCutoff' argument of ?results
[2] see 'independentFiltering' argument of ?results
plotMA(res, ylim=c(-2,2))

# resSig <- subset(resOrdered, padj < 0.05)
# resSig
# write.csv(as.data.frame(resSig), 
#           file="/Users/efraimshine/Desktop/rna_seq/TCGA/G6PD_abovepadj_0.05.csv")
# #filtering the results
# results_df <- read.csv("/Users/efraimshine/Desktop/rna_seq/TCGA/G6PD_abovepadj_0.05.csv")
# results_df
# results_filtered <- results_df %>% filter(log2FoldChange >0 ,padj < 0.05)
# results_filtered
# write.csv(as.data.frame(results_filtered), 
#           file="/Users/efraimshine/Desktop/rna_seq/TCGA/deseq2_res_g6pd/G6PD_results_filtered.csv")
# clustering
library(clusterProfiler)
clusterProfiler v4.12.6 Learn more at https://yulab-smu.top/contribution-knowledge-mining/

Please cite:

Guangchuang Yu, Li-Gen Wang, Yanyan Han and Qing-Yu He. clusterProfiler: an R package for comparing
biological themes among gene clusters. OMICS: A Journal of Integrative Biology. 2012, 16(5):284-287

Attaching package: ‘clusterProfiler’

The following object is masked from ‘package:IRanges’:

    slice

The following object is masked from ‘package:S4Vectors’:

    rename

The following object is masked from ‘package:stats’:

    filter
library(org.Hs.eg.db)
Loading required package: AnnotationDbi

Attaching package: ‘AnnotationDbi’

The following object is masked from ‘package:clusterProfiler’:

    select

The following object is masked from ‘package:dplyr’:

    select
library(AnnotationDbi)
# results as in tutorial notebook
sigs <- na.omit(res)
sigs 
log2 fold change (MLE): G6PD STATUS del vs normal 
Wald test p-value: G6PD STATUS del vs normal 
DataFrame with 19966 rows and 6 columns
                    baseMean log2FoldChange     lfcSE       stat      pvalue       padj
                   <numeric>      <numeric> <numeric>  <numeric>   <numeric>  <numeric>
ENSG00000000938.12   526.924      0.0890985  0.204877   0.434887  0.66364445  0.8279383
ENSG00000000971.15  8779.955     -0.3822258  0.333233  -1.147024  0.25137190  0.5044804
ENSG00000001036.13  3819.929      0.0692671  0.108760   0.636881  0.52420235  0.7387749
ENSG00000001084.10  3054.053      0.5835705  0.187987   3.104306  0.00190726  0.0224824
ENSG00000001167.14  2036.244      0.0849986  0.107587   0.790043  0.42950269  0.6659937
...                      ...            ...       ...        ...         ...        ...
ENSG00000282742.1    1.12973     -0.0149139  0.414371 -0.0359917 0.971288990 0.98804700
ENSG00000282772.1    3.40481      0.1249067  0.232893  0.5363261 0.591733169 0.78476134
ENSG00000282785.1   11.95613     -1.5794165  0.666821 -2.3685760 0.017856710 0.10495351
ENSG00000282787.1    4.82892      0.1005259  0.251360  0.3999272 0.689210164 0.84492237
ENSG00000282815.1   18.79935     -3.2703214  0.904536 -3.6154690 0.000299804 0.00591491
sigs <- sigs[sigs$padj < 0.05 & sigs$baseMean > 50,]
sigs
log2 fold change (MLE): G6PD STATUS del vs normal 
Wald test p-value: G6PD STATUS del vs normal 
DataFrame with 1657 rows and 6 columns
                    baseMean log2FoldChange     lfcSE      stat      pvalue        padj
                   <numeric>      <numeric> <numeric> <numeric>   <numeric>   <numeric>
ENSG00000001084.10  3054.053       0.583570 0.1879874   3.10431 1.90726e-03 2.24824e-02
ENSG00000002586.17 10883.825       0.457410 0.1615288   2.83175 4.62934e-03 4.21283e-02
ENSG00000002919.14  1385.907       0.417321 0.0883611   4.72290 2.32499e-06 1.20812e-04
ENSG00000003147.17  1738.231      -0.853329 0.2303385  -3.70468 2.11662e-04 4.49578e-03
ENSG00000003509.15   612.747       0.395231 0.0777233   5.08510 3.67439e-07 2.62949e-05
...                      ...            ...       ...       ...         ...         ...
ENSG00000280195.1    71.4972      -0.420825  0.133039  -3.16318 1.56054e-03 1.94858e-02
ENSG00000280206.1   354.2110       0.929372  0.194980   4.76651 1.87448e-06 1.02257e-04
ENSG00000280623.1   580.6105      -5.535151  0.829924  -6.66947 2.56737e-11 7.11945e-09
ENSG00000280693.2   126.8916      -1.842172  0.440578  -4.18127 2.89892e-05 9.14373e-04
ENSG00000281887.2   281.2606       0.653375  0.222959   2.93047 3.38451e-03 3.36097e-02
genes_to_test <- rownames(sigs[sigs$log2FoldChange > 0.5,]) 

genes_to_test_no_dots <- gsub("\\..*", "", genes_to_test)


res_for_gsea <- res[res$baseMean > 50,] 
res_for_gsea <- res_for_gsea[order(-res_for_gsea$log2FoldChange),]
res_for_gsea 
log2 fold change (MLE): G6PD STATUS del vs normal 
Wald test p-value: G6PD STATUS del vs normal 
DataFrame with 11537 rows and 6 columns
                     baseMean log2FoldChange     lfcSE      stat      pvalue        padj
                    <numeric>      <numeric> <numeric> <numeric>   <numeric>   <numeric>
ENSG00000104921.14    74.0583        3.17811  0.465926   6.82107 9.03661e-12 2.91008e-09
ENSG00000226979.8     57.1026        2.97102  0.293395  10.12636 4.22088e-24 2.10685e-20
ENSG00000117215.14   437.0081        2.77967  0.456832   6.08467 1.16729e-09 2.11148e-07
ENSG00000116690.11  1172.9550        2.69754  0.519864   5.18893 2.11505e-07 1.65604e-05
ENSG00000007312.12   385.6604        2.62957  0.312198   8.42278 3.67660e-17 4.58794e-14
...                       ...            ...       ...       ...         ...         ...
ENSG00000167751.12 19355.3328       -9.14423  1.015838  -9.00166 2.22332e-19 3.41467e-16
ENSG00000142515.14 59458.9953       -9.35830  1.022653  -9.15101 5.64056e-20 1.02381e-16
ENSG00000236666.1     79.2411       -9.68544  1.701987  -5.69067 1.26543e-08 1.59909e-06
ENSG00000275563.1    198.9023      -10.15286  1.466052  -6.92531 4.35026e-12 1.55102e-09
ENSG00000042832.11 93567.3535      -10.31531  0.713219 -14.46304 2.07431e-47 4.14157e-43
genes_for_gsea <- res_for_gsea$log2FoldChange
names(genes_for_gsea) <- gsub("\\..*", "", rownames(res_for_gsea))

genes_for_gsea
ENSG00000104921 ENSG00000226979 ENSG00000117215 ENSG00000116690 ENSG00000007312 ENSG00000134339 ENSG00000205358 
      3.1781132       2.9710213       2.7796740       2.6975391       2.6295731       2.6228767       2.5279040 
ENSG00000169271 ENSG00000135454 ENSG00000213402 ENSG00000180096 ENSG00000170627 ENSG00000185559 ENSG00000103522 
      2.5000753       2.4675996       2.4365610       2.3617645       2.3385255       2.2867566       2.2043700 
ENSG00000137078 ENSG00000126259 ENSG00000081051 ENSG00000265206 ENSG00000099822 ENSG00000070808 ENSG00000048462 
      2.1690154       2.1489982       2.0379732       1.9600150       1.9579820       1.9192518       1.9067080 
ENSG00000104814 ENSG00000165178 ENSG00000173432 ENSG00000029534 ENSG00000227507 ENSG00000143028 ENSG00000197580 
      1.8773298       1.8698347       1.8524080       1.8204911       1.7821676       1.7805515       1.7412985 
ENSG00000263711 ENSG00000187134 ENSG00000198759 ENSG00000161281 ENSG00000161896 ENSG00000172183 ENSG00000168421 
      1.7370139       1.7164779       1.7028004       1.6690621       1.6507538       1.6470155       1.6431231 
ENSG00000015285 ENSG00000253701 ENSG00000126264 ENSG00000156127 ENSG00000197540 ENSG00000159217 ENSG00000140968 
      1.6389095       1.6375103       1.6221061       1.6193278       1.6165002       1.6146588       1.6105796 
ENSG00000101204 ENSG00000258986 ENSG00000166592 ENSG00000125245 ENSG00000196839 ENSG00000230630 ENSG00000115523 
      1.5780262       1.5550574       1.5532361       1.5520668       1.5356919       1.5345115       1.4974613 
ENSG00000105369 ENSG00000131401 ENSG00000186265 ENSG00000256262 ENSG00000013297 ENSG00000204065 ENSG00000126759 
      1.4903063       1.4720129       1.4694560       1.4660016       1.4367918       1.4358178       1.4357319 
ENSG00000140557 ENSG00000136490 ENSG00000174332 ENSG00000011332 ENSG00000269145 ENSG00000167286 ENSG00000183770 
      1.4248279       1.4136499       1.3987947       1.3982713       1.3949868       1.3914086       1.3758937 
ENSG00000131459 ENSG00000139304 ENSG00000012504 ENSG00000175463 ENSG00000140107 ENSG00000113088 ENSG00000141314 
      1.3654917       1.3574422       1.3450057       1.3440017       1.3348996       1.3310900       1.3300788 
ENSG00000160886 ENSG00000010671 ENSG00000142552 ENSG00000185482 ENSG00000106333 ENSG00000143355 ENSG00000136573 
      1.3284928       1.3204822       1.3114163       1.3063040       1.2973496       1.2873489       1.2840918 
ENSG00000151632 ENSG00000164161 ENSG00000154277 ENSG00000056558 ENSG00000269994 ENSG00000188580 ENSG00000187193 
      1.2830662       1.2821499       1.2667031       1.2637191       1.2625741       1.2587671       1.2520346 
ENSG00000159753 ENSG00000163888 ENSG00000089692 ENSG00000112561 ENSG00000183696 ENSG00000049540 ENSG00000163492 
      1.2510664       1.2455529       1.2411363       1.2382906       1.2358430       1.2281667       1.2280707 
ENSG00000109705 ENSG00000105374 ENSG00000255833 ENSG00000130032 ENSG00000009709 ENSG00000145649 ENSG00000170476 
      1.2260844       1.2257353       1.2228033       1.2215815       1.2215348       1.2167835       1.2128331 
ENSG00000125148 ENSG00000163219 ENSG00000144596 ENSG00000099834 ENSG00000168542 ENSG00000169248 ENSG00000160539 
      1.2107965       1.2104776       1.2025190       1.2024962       1.1979578       1.1906113       1.1881900 
ENSG00000148702 ENSG00000186529 ENSG00000134594 ENSG00000256812 ENSG00000161649 ENSG00000163520 ENSG00000186810 
      1.1878089       1.1876054       1.1856452       1.1849919       1.1839928       1.1832248       1.1812279 
ENSG00000072818 ENSG00000241935 ENSG00000267484 ENSG00000167588 ENSG00000182487 ENSG00000257764 ENSG00000131386 
      1.1806011       1.1774685       1.1695851       1.1687959       1.1663604       1.1662394       1.1620832 
ENSG00000151948 ENSG00000077616 ENSG00000213398 ENSG00000137868 ENSG00000247774 ENSG00000163687 ENSG00000124772 
      1.1589913       1.1526241       1.1469469       1.1415378       1.1407537       1.1401454       1.1348138 
ENSG00000078053 ENSG00000227751 ENSG00000172782 ENSG00000154040 ENSG00000100628 ENSG00000127241 ENSG00000188820 
      1.1323982       1.1262912       1.1253872       1.1235287       1.1191068       1.1059558       1.1050004 
ENSG00000154262 ENSG00000269968 ENSG00000133454 ENSG00000213123 ENSG00000148408 ENSG00000034239 ENSG00000185527 
      1.1030903       1.1027060       1.1016847       1.1009640       1.0918966       1.0918524       1.0888321 
ENSG00000275215 ENSG00000277739 ENSG00000278189 ENSG00000278233 ENSG00000166147 ENSG00000136717 ENSG00000036672 
      1.0823984       1.0823984       1.0823984       1.0823984       1.0780982       1.0774379       1.0757375 
ENSG00000159403 ENSG00000138759 ENSG00000141968 ENSG00000176909 ENSG00000183260 ENSG00000134962 ENSG00000152977 
      1.0684744       1.0647107       1.0646821       1.0614825       1.0605849       1.0587424       1.0574814 
ENSG00000124253 ENSG00000173762 ENSG00000139540 ENSG00000100450 ENSG00000198821 ENSG00000266524 ENSG00000172724 
      1.0557823       1.0556329       1.0540980       1.0519291       1.0516959       1.0483639       1.0448180 
ENSG00000258017 ENSG00000153531 ENSG00000165349 ENSG00000277586 ENSG00000181418 ENSG00000167434 ENSG00000213413 
      1.0447456       1.0420579       1.0416379       1.0371605       1.0347810       1.0287913       1.0277054 
ENSG00000196656 ENSG00000258545 ENSG00000197444 ENSG00000166523 ENSG00000244255 ENSG00000129009 ENSG00000182327 
      1.0264417       1.0245994       1.0239518       1.0141511       1.0035062       0.9997270       0.9924941 
ENSG00000005243 ENSG00000050555 ENSG00000159231 ENSG00000116833 ENSG00000189409 ENSG00000186827 ENSG00000019991 
      0.9921613       0.9871967       0.9870047       0.9859048       0.9845461       0.9837816       0.9822179 
ENSG00000028277 ENSG00000169442 ENSG00000169715 ENSG00000180549 ENSG00000124440 ENSG00000178821 ENSG00000213809 
      0.9817075       0.9765755       0.9765511       0.9750071       0.9696193       0.9671113       0.9660530 
ENSG00000026751 ENSG00000240891 ENSG00000154016 ENSG00000164330 ENSG00000164611 ENSG00000223749 ENSG00000149380 
      0.9649559       0.9623772       0.9600448       0.9576285       0.9574811       0.9568762       0.9547699 
ENSG00000106483 ENSG00000213199 ENSG00000100365 ENSG00000065675 ENSG00000156298 ENSG00000232527 ENSG00000146374 
      0.9546693       0.9532334       0.9530427       0.9515806       0.9513633       0.9501648       0.9487375 
ENSG00000183570 ENSG00000228203 ENSG00000254615 ENSG00000260604 ENSG00000115085 ENSG00000266964 ENSG00000125430 
      0.9478934       0.9475837       0.9466093       0.9416220       0.9407673       0.9403380       0.9399923 
ENSG00000213347 ENSG00000183837 ENSG00000161929 ENSG00000007129 ENSG00000198108 ENSG00000163600 ENSG00000183114 
      0.9351648       0.9347114       0.9325399       0.9324205       0.9318629       0.9307539       0.9304986 
ENSG00000211772 ENSG00000121594 ENSG00000280206 ENSG00000128805 ENSG00000128591 ENSG00000131711 ENSG00000205220 
      0.9297839       0.9294371       0.9293715       0.9267989       0.9242613       0.9218855       0.9218255 
ENSG00000167476 ENSG00000183918 ENSG00000205683 ENSG00000101400 ENSG00000184792 ENSG00000110852 ENSG00000085741 
      0.9213762       0.9195360       0.9189638       0.9185531       0.9152295       0.9146651       0.9113115 
ENSG00000122756 ENSG00000169758 ENSG00000213442 ENSG00000135446 ENSG00000064201 ENSG00000160256 ENSG00000146674 
      0.9079838       0.9076132       0.9076104       0.9069076       0.9048861       0.9030748       0.8981448 
ENSG00000167992 ENSG00000198937 ENSG00000186732 ENSG00000179344 ENSG00000164627 ENSG00000187608 ENSG00000108947 
      0.8976309       0.8955116       0.8952612       0.8929128       0.8927714       0.8921738       0.8915130 
ENSG00000140274 ENSG00000139725 ENSG00000140451 ENSG00000204262 ENSG00000231290 ENSG00000135519 ENSG00000163599 
      0.8909653       0.8895508       0.8892580       0.8889570       0.8879154       0.8869607       0.8864862 
ENSG00000103742 ENSG00000179292 ENSG00000167178 ENSG00000235142 ENSG00000117090 ENSG00000106236 ENSG00000091656 
      0.8860426       0.8856257       0.8856038       0.8855027       0.8829664       0.8828942       0.8826784 
ENSG00000157851 ENSG00000198074 ENSG00000123384 ENSG00000105246 ENSG00000025708 ENSG00000268083 ENSG00000123329 
      0.8820064       0.8805711       0.8797152       0.8796821       0.8735386       0.8713394       0.8713185 
ENSG00000110900 ENSG00000149781 ENSG00000118596 ENSG00000189129 ENSG00000090534 ENSG00000196569 ENSG00000104059 
      0.8675965       0.8656761       0.8633009       0.8631474       0.8596014       0.8542034       0.8516672 
ENSG00000111796 ENSG00000082397 ENSG00000112486 ENSG00000277734 ENSG00000143194 ENSG00000126218 ENSG00000117707 
      0.8512002       0.8511248       0.8495238       0.8485406       0.8437499       0.8424192       0.8411926 
ENSG00000170049 ENSG00000160999 ENSG00000128815 ENSG00000255874 ENSG00000186907 ENSG00000119630 ENSG00000169752 
      0.8396933       0.8392097       0.8365097       0.8365033       0.8358344       0.8352851       0.8350148 
ENSG00000254560 ENSG00000278023 ENSG00000247982 ENSG00000157087 ENSG00000117009 ENSG00000181856 ENSG00000135144 
      0.8349414       0.8333419       0.8333090       0.8326663       0.8302783       0.8281197       0.8271056 
ENSG00000093134 ENSG00000162520 ENSG00000128340 ENSG00000168765 ENSG00000185291 ENSG00000111700 ENSG00000213443 
      0.8247089       0.8241871       0.8185498       0.8140100       0.8124829       0.8118224       0.8104519 
ENSG00000249971 ENSG00000110811 ENSG00000173372 ENSG00000100079 ENSG00000269242 ENSG00000129038 ENSG00000153976 
      0.8084076       0.8081260       0.8057944       0.8034844       0.8023331       0.8022817       0.8016373 
ENSG00000223865 ENSG00000162551 ENSG00000008516 ENSG00000159958 ENSG00000075340 ENSG00000113140 ENSG00000198851 
      0.8013983       0.8013503       0.7984063       0.7962950       0.7956058       0.7913459       0.7885303 
ENSG00000124212 ENSG00000188389 ENSG00000067445 ENSG00000180644 ENSG00000143434 ENSG00000214491 ENSG00000150782 
      0.7870205       0.7859187       0.7850008       0.7833837       0.7825438       0.7821762       0.7809971 
ENSG00000119125 ENSG00000204379 ENSG00000198885 ENSG00000172543 ENSG00000178562 ENSG00000174500 ENSG00000164483 
      0.7763635       0.7763024       0.7758462       0.7754885       0.7742851       0.7741017       0.7740325 
ENSG00000154319 ENSG00000154620 ENSG00000053524 ENSG00000260293 ENSG00000196218 ENSG00000124140 ENSG00000158457 
      0.7738354       0.7726502       0.7721227       0.7703655       0.7688068       0.7685580       0.7684710 
ENSG00000106538 ENSG00000271503 ENSG00000137474 ENSG00000137880 ENSG00000172345 ENSG00000168389 ENSG00000103187 
      0.7684018       0.7659827       0.7647453       0.7644730       0.7634384       0.7632954       0.7632224 
ENSG00000155629 ENSG00000129596 ENSG00000153563 ENSG00000116771 ENSG00000168918 ENSG00000161888 ENSG00000237943 
      0.7625259       0.7625213       0.7607881       0.7607165       0.7599382       0.7590153       0.7588492 
ENSG00000110665 ENSG00000005073 ENSG00000105223 ENSG00000105290 ENSG00000198865 ENSG00000137261 ENSG00000105339 
      0.7577234       0.7576478       0.7544862       0.7540524       0.7533228       0.7523620       0.7518061 
ENSG00000164484 ENSG00000151572 ENSG00000152495 ENSG00000166825 ENSG00000255690 ENSG00000183807 ENSG00000214026 
      0.7509147       0.7502715       0.7497318       0.7496809       0.7470121       0.7464768       0.7415764 
ENSG00000101115 ENSG00000139187 ENSG00000101445 ENSG00000067048 ENSG00000167874 ENSG00000125354 ENSG00000158445 
      0.7411372       0.7410577       0.7409675       0.7402257       0.7401892       0.7393268       0.7392974 
ENSG00000064692 ENSG00000122223 ENSG00000228672 ENSG00000141696 ENSG00000165810 ENSG00000110324 ENSG00000259974 
      0.7391889       0.7380670       0.7372210       0.7350659       0.7346101       0.7333747       0.7333572 
ENSG00000167513 ENSG00000114279 ENSG00000204472 ENSG00000204382 ENSG00000123297 ENSG00000260000 ENSG00000257167 
      0.7324176       0.7310212       0.7257961       0.7250932       0.7243995       0.7240707       0.7233059 
ENSG00000211937 ENSG00000111885 ENSG00000170458 ENSG00000188486 ENSG00000279753 ENSG00000244398 ENSG00000244563 
      0.7222933       0.7217692       0.7188771       0.7177028       0.7168647       0.7168061       0.7167783 
ENSG00000226363 ENSG00000230797 ENSG00000101057 ENSG00000185100 ENSG00000105609 ENSG00000204072 ENSG00000129757 
      0.7148766       0.7127460       0.7117782       0.7116973       0.7110775       0.7108818       0.7105060 
ENSG00000115956 ENSG00000167508 ENSG00000182162 ENSG00000160460 ENSG00000118308 ENSG00000258232 ENSG00000138315 
      0.7085250       0.7080052       0.7076687       0.7060836       0.7058951       0.7049221       0.7048612 
ENSG00000237988 ENSG00000267007 ENSG00000117600 ENSG00000076662 ENSG00000156265 ENSG00000169136 ENSG00000198692 
      0.7030758       0.7011105       0.7002946       0.6985950       0.6984745       0.6979239       0.6972133 
ENSG00000211639 ENSG00000254682 ENSG00000166183 ENSG00000013810 ENSG00000197614 ENSG00000255390 ENSG00000188672 
      0.6971446       0.6959259       0.6956900       0.6956220       0.6953570       0.6947841       0.6947144 
ENSG00000105640 ENSG00000100342 ENSG00000183876 ENSG00000124134 ENSG00000143847 ENSG00000185262 ENSG00000116670 
      0.6942850       0.6939045       0.6933563       0.6927027       0.6923107       0.6913313       0.6901545 
ENSG00000168671 ENSG00000171984 ENSG00000206384 ENSG00000233762 ENSG00000160097 ENSG00000051523 ENSG00000105991 
      0.6901326       0.6889444       0.6884542       0.6873096       0.6871894       0.6865604       0.6860487 
ENSG00000153283 ENSG00000173705 ENSG00000188042 ENSG00000213366 ENSG00000245060 ENSG00000135506 ENSG00000237575 
      0.6854846       0.6847367       0.6845606       0.6836044       0.6830732       0.6828276       0.6826241 
ENSG00000267390 ENSG00000142156 ENSG00000183873 ENSG00000260220 ENSG00000117091 ENSG00000137825 ENSG00000105717 
      0.6817249       0.6811436       0.6797177       0.6775816       0.6757040       0.6746809       0.6743666 
ENSG00000107249 ENSG00000185201 ENSG00000214113 ENSG00000279369 ENSG00000182636 ENSG00000273046 ENSG00000141756 
      0.6732734       0.6723703       0.6713009       0.6711637       0.6711123       0.6701445       0.6687016 
ENSG00000197859 ENSG00000179044 ENSG00000174871 ENSG00000129824 ENSG00000108448 ENSG00000177606 ENSG00000130988 
      0.6672814       0.6671598       0.6666682       0.6660749       0.6648892       0.6648272       0.6647321 
ENSG00000248871 ENSG00000172215 ENSG00000279909 ENSG00000177600 ENSG00000106976 ENSG00000132437 ENSG00000176912 
      0.6637248       0.6634986       0.6624347       0.6608949       0.6600825       0.6593445       0.6572007 
ENSG00000250742 ENSG00000136378 ENSG00000167515 ENSG00000281887 ENSG00000251349 ENSG00000109943 ENSG00000147119 
      0.6571978       0.6549072       0.6535515       0.6533750       0.6526119       0.6524774       0.6520631 
ENSG00000163430 ENSG00000188130 ENSG00000137507 ENSG00000133488 ENSG00000142657 ENSG00000255114 ENSG00000132819 
      0.6518378       0.6503694       0.6501177       0.6485819       0.6485043       0.6483922       0.6478559 
ENSG00000180089 ENSG00000196368 ENSG00000236756 ENSG00000227640 ENSG00000184785 ENSG00000028137 ENSG00000163827 
      0.6469454       0.6465192       0.6452313       0.6442040       0.6437770       0.6436178       0.6426640 
ENSG00000141338 ENSG00000131153 ENSG00000177519 ENSG00000276791 ENSG00000187243 ENSG00000144031 ENSG00000160223 
      0.6419890       0.6410968       0.6399761       0.6398894       0.6391210       0.6382506       0.6373048 
ENSG00000212978 ENSG00000153064 ENSG00000144407 ENSG00000110031 ENSG00000274104 ENSG00000122971 ENSG00000175643 
      0.6367677       0.6361283       0.6355191       0.6347749       0.6341405       0.6336773       0.6331674 
ENSG00000153707 ENSG00000156218 ENSG00000131828 ENSG00000111186 ENSG00000233864 ENSG00000166148 ENSG00000198771 
      0.6330346       0.6324063       0.6322484       0.6319941       0.6315593       0.6314173       0.6310555 
ENSG00000167077 ENSG00000153044 ENSG00000112576 ENSG00000196092 ENSG00000272742 ENSG00000102109 ENSG00000160471 
      0.6310382       0.6303826       0.6301596       0.6286945       0.6278736       0.6274149       0.6273166 
ENSG00000187116 ENSG00000258484 ENSG00000224557 ENSG00000124203 ENSG00000166250 ENSG00000135426 ENSG00000076258 
      0.6270718       0.6270545       0.6260120       0.6253083       0.6252905       0.6249909       0.6247138 
ENSG00000136942 ENSG00000111052 ENSG00000198848 ENSG00000233954 ENSG00000115919 ENSG00000275185 ENSG00000235174 
      0.6238702       0.6232686       0.6224629       0.6217922       0.6203677       0.6201910       0.6199152 
ENSG00000160185 ENSG00000123975 ENSG00000259132 ENSG00000269190 ENSG00000147485 ENSG00000139194 ENSG00000185905 
      0.6196307       0.6196272       0.6194647       0.6191324       0.6181568       0.6178955       0.6177108 
ENSG00000072506 ENSG00000132386 ENSG00000111203 ENSG00000198732 ENSG00000138080 ENSG00000126882 ENSG00000176399 
      0.6174009       0.6162573       0.6160923       0.6155861       0.6154086       0.6148236       0.6146494 
ENSG00000104899 ENSG00000010379 ENSG00000106366 ENSG00000075035 ENSG00000132965 ENSG00000142173 ENSG00000074047 
      0.6145492       0.6135993       0.6119699       0.6112613       0.6101943       0.6099671       0.6091310 
ENSG00000111058 ENSG00000169744 ENSG00000090539 ENSG00000145147 ENSG00000176845 ENSG00000260329 ENSG00000120053 
      0.6083600       0.6081072       0.6079438       0.6074322       0.6063501       0.6058844       0.6056308 
ENSG00000132429 ENSG00000279945 ENSG00000255399 ENSG00000107736 ENSG00000234883 ENSG00000224126 ENSG00000164294 
      0.6043230       0.6038273       0.6037413       0.6036737       0.6028078       0.6025658       0.6018140 
ENSG00000244731 ENSG00000087884 ENSG00000100385 ENSG00000140876 ENSG00000138792 ENSG00000116691 ENSG00000116544 
      0.6017826       0.6014504       0.6012726       0.6012196       0.6010743       0.6010390       0.6002688 
ENSG00000037280 ENSG00000198734 ENSG00000179271 ENSG00000262251 ENSG00000089486 ENSG00000144488 ENSG00000259772 
      0.5999193       0.5998170       0.5991477       0.5958329       0.5950853       0.5948692       0.5948019 
ENSG00000152804 ENSG00000135114 ENSG00000160360 ENSG00000121361 ENSG00000213626 ENSG00000138964 ENSG00000077092 
      0.5946771       0.5943502       0.5931361       0.5927583       0.5926266       0.5925653       0.5919227 
ENSG00000178982 ENSG00000160233 ENSG00000241945 ENSG00000272269 ENSG00000239246 ENSG00000171811 ENSG00000144331 
      0.5918188       0.5910141       0.5907106       0.5906509       0.5901189       0.5897297       0.5882058 
ENSG00000138755 ENSG00000131446 ENSG00000122121 ENSG00000259291 ENSG00000253368 ENSG00000152689 ENSG00000148335 
      0.5864055       0.5860265       0.5856835       0.5854826       0.5849146       0.5845400       0.5844605 
ENSG00000001084 ENSG00000243414 ENSG00000114948 ENSG00000174775 ENSG00000213619 ENSG00000134259 ENSG00000078814 
      0.5835705       0.5834153       0.5833541       0.5824727       0.5824001       0.5822440       0.5816273 
ENSG00000135045 ENSG00000078589 ENSG00000168268 ENSG00000204397 ENSG00000154723 ENSG00000185669 ENSG00000230006 
      0.5812847       0.5806828       0.5801717       0.5801126       0.5800262       0.5797379       0.5795779 
ENSG00000182378 ENSG00000204261 ENSG00000163995 ENSG00000177990 ENSG00000196465 ENSG00000211976 ENSG00000186897 
      0.5794123       0.5791164       0.5786016       0.5784734       0.5778651       0.5777068       0.5761494 
ENSG00000250508 ENSG00000163606 ENSG00000254535 ENSG00000169627 ENSG00000090554 ENSG00000137101 ENSG00000187634 
      0.5755504       0.5745969       0.5743088       0.5740370       0.5740220       0.5738481       0.5736937 
ENSG00000157111 ENSG00000245164 ENSG00000186998 ENSG00000144476 ENSG00000146054 ENSG00000105227 ENSG00000058866 
      0.5729472       0.5727097       0.5726320       0.5717400       0.5715195       0.5714398       0.5706779 
ENSG00000185304 ENSG00000162384 ENSG00000183011 ENSG00000168060 ENSG00000161958 ENSG00000133063 ENSG00000229754 
      0.5701123       0.5681270       0.5664956       0.5661567       0.5661444       0.5659437       0.5650483 
ENSG00000106992 ENSG00000102245 ENSG00000111012 ENSG00000101160 ENSG00000130035 ENSG00000112319 ENSG00000168306 
      0.5650455       0.5645939       0.5623113       0.5621904       0.5620328       0.5619341       0.5614023 
ENSG00000152315 ENSG00000168393 ENSG00000144785 ENSG00000091986 ENSG00000198185 ENSG00000170214 ENSG00000179144 
      0.5612921       0.5603068       0.5594617       0.5587935       0.5585670       0.5577048       0.5576148 
ENSG00000169515 ENSG00000146232 ENSG00000154822 ENSG00000267152 ENSG00000166831 ENSG00000204482 ENSG00000173660 
      0.5565215       0.5555221       0.5552609       0.5536123       0.5532676       0.5530966       0.5528577 
ENSG00000189369 ENSG00000148942 ENSG00000186994 ENSG00000126756 ENSG00000175497 ENSG00000180447 ENSG00000213221 
      0.5525461       0.5521589       0.5521394       0.5519433       0.5517622       0.5511531       0.5508654 
ENSG00000101336 ENSG00000088882 ENSG00000164949 ENSG00000099624 ENSG00000167264 ENSG00000237753 ENSG00000138650 
      0.5508612       0.5502078       0.5501392       0.5499174       0.5497584       0.5491684       0.5465948 
ENSG00000253304 ENSG00000173272 ENSG00000183671 ENSG00000113532 ENSG00000109814 ENSG00000165410 ENSG00000124615 
      0.5463218       0.5459914       0.5458871       0.5458310       0.5452074       0.5450164       0.5442515 
ENSG00000141293 ENSG00000176890 ENSG00000275700 ENSG00000175701 ENSG00000023909 ENSG00000172828 ENSG00000272841 
      0.5442233       0.5437900       0.5433857       0.5430087       0.5428857       0.5427521       0.5421197 
ENSG00000152620 ENSG00000136274 ENSG00000241343 ENSG00000066735 ENSG00000089327 ENSG00000112183 ENSG00000229119 
      0.5420451       0.5413886       0.5411011       0.5398671       0.5392427       0.5389896       0.5387803 
ENSG00000171346 ENSG00000119938 ENSG00000264575 ENSG00000174807 ENSG00000047457 ENSG00000128951 ENSG00000241837 
      0.5385133       0.5377907       0.5377525       0.5375262       0.5375002       0.5373614       0.5373481 
ENSG00000147100 ENSG00000102760 ENSG00000171115 ENSG00000165025 ENSG00000233429 ENSG00000140368 ENSG00000148935 
      0.5372488       0.5370721       0.5359881       0.5357289       0.5354289       0.5353249       0.5351877 
ENSG00000004777 ENSG00000105538 ENSG00000174640 ENSG00000104886 ENSG00000160932 ENSG00000185869 ENSG00000151702 
      0.5348496       0.5339589       0.5327197       0.5322301       0.5320918       0.5319941       0.5314466 
ENSG00000243811 ENSG00000260456 ENSG00000185614 ENSG00000074370 ENSG00000127831 ENSG00000244625 ENSG00000245105 
      0.5301178       0.5299843       0.5297539       0.5296637       0.5295349       0.5289143       0.5287101 
ENSG00000183072 ENSG00000223768 ENSG00000268129 ENSG00000127533 ENSG00000143184 ENSG00000144820 ENSG00000164674 
      0.5281401       0.5276681       0.5259531       0.5258654       0.5255341       0.5254718       0.5253928 
ENSG00000092841 ENSG00000138378 ENSG00000184226 ENSG00000158481 ENSG00000270136 ENSG00000166813 ENSG00000175063 
      0.5242547       0.5242384       0.5240947       0.5231732       0.5231669       0.5231398       0.5230636 
ENSG00000186010 ENSG00000163145 ENSG00000182117 ENSG00000161677 ENSG00000180448 ENSG00000100911 ENSG00000198223 
      0.5229220       0.5227539       0.5222731       0.5208281       0.5207333       0.5207022       0.5205889 
ENSG00000183060 ENSG00000126246 ENSG00000180806 ENSG00000136167 ENSG00000131143 ENSG00000160326 ENSG00000081237 
      0.5203188       0.5200276       0.5196710       0.5194554       0.5193551       0.5179807       0.5177447 
ENSG00000140092 ENSG00000165644 ENSG00000171621 ENSG00000092020 ENSG00000115268 ENSG00000155085 ENSG00000153814 
      0.5175198       0.5174279       0.5174016       0.5159844       0.5153998       0.5152146       0.5141521 
ENSG00000087460 ENSG00000223839 ENSG00000157456 ENSG00000170276 ENSG00000178752 ENSG00000163519 ENSG00000115963 
      0.5141466       0.5139194       0.5137311       0.5136626       0.5135593       0.5133266       0.5133263 
ENSG00000102098 ENSG00000115138 ENSG00000255639 ENSG00000172794 ENSG00000160255 ENSG00000165028 ENSG00000157423 
      0.5132064       0.5126873       0.5124214       0.5121646       0.5121051       0.5117682       0.5115871 
ENSG00000137267 ENSG00000178809 ENSG00000166803 ENSG00000154451 ENSG00000176715 ENSG00000099256 ENSG00000120341 
      0.5113851       0.5112385       0.5109654       0.5107556       0.5106545       0.5105884       0.5104708 
ENSG00000197646 ENSG00000177595 ENSG00000204264 ENSG00000197756 ENSG00000176868 ENSG00000241244 ENSG00000184831 
      0.5104121       0.5100089       0.5099995       0.5098236       0.5097478       0.5096935       0.5093289 
ENSG00000063660 ENSG00000204128 ENSG00000171858 ENSG00000134323 ENSG00000166441 ENSG00000118292 ENSG00000163508 
      0.5082025       0.5081447       0.5077436       0.5070946       0.5068844       0.5065393       0.5064259 
ENSG00000069493 ENSG00000116062 ENSG00000157399 ENSG00000165914 ENSG00000166896 ENSG00000128408 ENSG00000060762 
      0.5062713       0.5059423       0.5055558       0.5055019       0.5052268       0.5046383       0.5045721 
ENSG00000245910 ENSG00000107738 ENSG00000164104 ENSG00000197576 ENSG00000271380 ENSG00000187889 ENSG00000136383 
      0.5044423       0.5042897       0.5042822       0.5042131       0.5037026       0.5034232       0.5033880 
ENSG00000255071 ENSG00000070404 ENSG00000183878 ENSG00000066336 ENSG00000152082 ENSG00000139200 ENSG00000213886 
      0.5033054       0.5031898       0.5030858       0.5027639       0.5027138       0.5025723       0.5016086 
ENSG00000102230 ENSG00000270547 ENSG00000179583 ENSG00000169230 ENSG00000134901 ENSG00000232442 ENSG00000169764 
      0.5000631       0.4999400       0.4997046       0.4994002       0.4991745       0.4980786       0.4979369 
ENSG00000172578 ENSG00000116132 ENSG00000261188 ENSG00000204257 ENSG00000168904 ENSG00000150893 ENSG00000125995 
      0.4978506       0.4977265       0.4973502       0.4968385       0.4966571       0.4962548       0.4956525 
ENSG00000087086 ENSG00000134470 ENSG00000170608 ENSG00000105245 ENSG00000068079 ENSG00000264920 ENSG00000128271 
      0.4955486       0.4951502       0.4950124       0.4949785       0.4946531       0.4940663       0.4938618 
ENSG00000164093 ENSG00000184905 ENSG00000134061 ENSG00000272763 ENSG00000274576 ENSG00000142684 ENSG00000204642 
      0.4938146       0.4937070       0.4934306       0.4928482       0.4927899       0.4925482       0.4922883 
ENSG00000068078 ENSG00000251503 ENSG00000106089 ENSG00000260549 ENSG00000263986 ENSG00000259802 ENSG00000159761 
      0.4920747       0.4919319       0.4904344       0.4893435       0.4889686       0.4884936       0.4882722 
ENSG00000171016 ENSG00000262413 ENSG00000135097 ENSG00000183813 ENSG00000175482 ENSG00000204060 ENSG00000119929 
      0.4874178       0.4870927       0.4868955       0.4867696       0.4867402       0.4857621       0.4852852 
ENSG00000174547 ENSG00000126953 ENSG00000279296 ENSG00000180739 ENSG00000176386 ENSG00000162676 ENSG00000158164 
      0.4850695       0.4844691       0.4843349       0.4840138       0.4839725       0.4828792       0.4824660 
ENSG00000154839 ENSG00000112972 ENSG00000173221 ENSG00000067064 ENSG00000151131 ENSG00000110719 ENSG00000176153 
      0.4823792       0.4822481       0.4816349       0.4810867       0.4807205       0.4805674       0.4797074 
ENSG00000169976 ENSG00000269293 ENSG00000087088 ENSG00000149212 ENSG00000167645 ENSG00000183684 ENSG00000101230 
      0.4794579       0.4793680       0.4786673       0.4783300       0.4783119       0.4779113       0.4770619 
ENSG00000110446 ENSG00000188610 ENSG00000213654 ENSG00000170962 ENSG00000176894 ENSG00000135899 ENSG00000116774 
      0.4769004       0.4767427       0.4767271       0.4753634       0.4752304       0.4750525       0.4749672 
ENSG00000139832 ENSG00000277758 ENSG00000237036 ENSG00000127564 ENSG00000184489 ENSG00000136231 ENSG00000140264 
      0.4749336       0.4742036       0.4738521       0.4730652       0.4729237       0.4723864       0.4722488 
ENSG00000198947 ENSG00000087495 ENSG00000142168 ENSG00000187288 ENSG00000169021 ENSG00000165323 ENSG00000105329 
      0.4711780       0.4706528       0.4705310       0.4705107       0.4701073       0.4693971       0.4693164 
ENSG00000263563 ENSG00000100526 ENSG00000125835 ENSG00000175556 ENSG00000130748 ENSG00000115226 ENSG00000204338 
      0.4692311       0.4681153       0.4679163       0.4668835       0.4664200       0.4660104       0.4654750 
ENSG00000052802 ENSG00000132622 ENSG00000167895 ENSG00000130300 ENSG00000181991 ENSG00000109805 ENSG00000095585 
      0.4652055       0.4644698       0.4644581       0.4640105       0.4638970       0.4638246       0.4634699 
ENSG00000183032 ENSG00000160563 ENSG00000110801 ENSG00000171227 ENSG00000151229 ENSG00000100031 ENSG00000182912 
      0.4633247       0.4631762       0.4630956       0.4630793       0.4625355       0.4622850       0.4616134 
ENSG00000187824 ENSG00000158062 ENSG00000124635 ENSG00000167641 ENSG00000167526 ENSG00000176788 ENSG00000014641 
      0.4612233       0.4608343       0.4607274       0.4606837       0.4605135       0.4601814       0.4594062 
ENSG00000225756 ENSG00000197471 ENSG00000105669 ENSG00000258790 ENSG00000002586 ENSG00000159377 ENSG00000145982 
      0.4593870       0.4592662       0.4582509       0.4577642       0.4574099       0.4572640       0.4571319 
ENSG00000260236 ENSG00000253174 ENSG00000249992 ENSG00000103152 ENSG00000175600 ENSG00000161265 ENSG00000189159 
      0.4569103       0.4568147       0.4566990       0.4565745       0.4564885       0.4560035       0.4559431 
ENSG00000143851 ENSG00000204136 ENSG00000074590 ENSG00000010282 ENSG00000137672 ENSG00000145592 ENSG00000017483 
      0.4553429       0.4548604       0.4546216       0.4545749       0.4544883       0.4530573       0.4529025 
ENSG00000117632 ENSG00000159259 ENSG00000166257 ENSG00000107833 ENSG00000134516 ENSG00000174886 ENSG00000164035 
      0.4526872       0.4526461       0.4517104       0.4516285       0.4514247       0.4506976       0.4506937 
ENSG00000036448 ENSG00000237172 ENSG00000130303 ENSG00000115163 ENSG00000099901 ENSG00000122824 ENSG00000172348 
      0.4504043       0.4501627       0.4496317       0.4495437       0.4495108       0.4488507       0.4488031 
ENSG00000148291 ENSG00000181744 ENSG00000185267 ENSG00000185627 ENSG00000203993 ENSG00000244716 ENSG00000115325 
      0.4487389       0.4484374       0.4479550       0.4474286       0.4472778       0.4470520       0.4468646 
ENSG00000136026 ENSG00000068028 ENSG00000073464 ENSG00000104889 ENSG00000129993 ENSG00000167088 ENSG00000273148 
      0.4466053       0.4462310       0.4461893       0.4458240       0.4454381       0.4451479       0.4450311 
ENSG00000159261 ENSG00000242220 ENSG00000154721 ENSG00000267120 ENSG00000146859 ENSG00000141574 ENSG00000108107 
      0.4431813       0.4428134       0.4419679       0.4416720       0.4416385       0.4407304       0.4406834 
ENSG00000204682 ENSG00000255439 ENSG00000154760 ENSG00000108786 ENSG00000008517 ENSG00000215784 ENSG00000182853 
      0.4404410       0.4404132       0.4401919       0.4394023       0.4390155       0.4388653       0.4387380 
ENSG00000198830 ENSG00000041357 ENSG00000172935 ENSG00000131203 ENSG00000139178 ENSG00000167797 
      0.4386486       0.4386179       0.4385475       0.4379917       0.4373127       0.4372168 
 [ reached getOption("max.print") -- omitted 10537 entries ]
# #GO analysis
# GO_results <- enrichGO(gene = genes_to_test_no_dots, OrgDb = "org.Hs.eg.db", keyType = "ENSEMBL", ont = "BP")
# path_df_enrich <- as.data.frame(GO_results)
gsea_res_big_ctr <- gseGO(genes_for_gsea,
             ont = "BP",
             keyType = "ENSEMBL",
             OrgDb = "org.Hs.eg.db",
             eps = 1e-300,
             pvalueCutoff = 1)
using 'fgsea' for GSEA analysis, please cite Korotkevich et al (2019).

preparing geneSet collections...
GSEA analysis...
Warning: There are ties in the preranked stats (0.04% of the list).
The order of those tied genes will be arbitrary, which may produce unexpected results.Warning: There were 73 pathways for which P-values were not calculated properly due to unbalanced (positive and negative) gene-level statistic values. For such pathways pval, padj, NES, log2err are set to NA. You can try to increase the value of the argument nPermSimple (for example set it nPermSimple = 10000)Warning: For some of the pathways the P-values were likely overestimated. For such pathways log2err is set to NA.leading edge analysis...
done...

gsea_results_df <- as.data.frame(gsea_res_big_ctr)
gsea_results_df
fit_gsea <- gseaplot(gsea_res_big_ctr, geneSetID = "GO:0006635",title = "fatty acid beta-oxidation")
fit_gsea


gsea_results_df %>% filter(ID =="GO:0006635")
fit <- plot(barplot(GO_results, showCategory = 20))
png("out.png", res = 250, width = 1400, height = 1800)
print(fit)
dev.off()
# GO_results <- enricher()
# as.data.frame(GO_results)
# prepaer meta data for multi factor analysis 
metadata_rnames_merged_with_info_orderd
metadata_rnames_merged_with_info_orderd$G6PD_STATUS <- factor(metadata_rnames_merged_with_info_orderd$G6PD_STATUS)
table(metadata_rnames_merged_with_info_orderd$cancer_type, metadata_rnames_merged_with_info_orderd$G6PD_STATUS)
metadata_rnames_merged_with_info_orderd$cancer_type <- droplevels(metadata_rnames_merged_with_info_orderd$cancer_type)
metadata_rnames_merged_with_info_orderd$G6PD_STATUS <- droplevels(metadata_rnames_merged_with_info_orderd$G6PD_STATUS)
metadata_rnames_merged_with_info_orderd
# #multi factor analysis 
# metadata_rnames_merged_with_info_orderd
# library(DESeq2)
# ddsMF <- DESeqDataSetFromMatrix(countData = matrix_for_deseq,
#                               colData = metadata_rnames_merged_with_info_orderd,
#                               design = ~ cancer_type + G6PD_STATUS + cancer_type:G6PD_STATUS)
# ddsMF$G6PD_STATUS <- relevel(ddsMF$G6PD_STATUS, ref = "normal")
# ddsMF <- DESeq(ddsMF)
# #design(ddsMF) <- formula(~ cancer_type + G6PD_STATUS)
# # levels(ddsMF$`Cancer Type`)
# # levels(ddsMF$`Cancer Type`) <- sub("-.*", "", levels(ddsMF$`Cancer Type`))
# # levels(ddsMF$`Cancer Type`)s
ddsMF_results <- results(ddsMF,contrast = c())
summary(ddsMF_results)
resultsNames(ddsMF_results)
names(as.data.frame(coef(ddsMF)))

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Cmd+Option+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Cmd+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ21kK1NoaWZ0K0VudGVyKi4gCn4vd29ya3NwYWNlL2Jpb2luZm9ybWF0aWNzX2FuYWx5c2lzL2NvZGUvcl9zY3JpcHRzL3JuYV9zZXFfZzZwZC9UQ0dBX0RFU0VRLlJtZApgYGB7cn0Kc2V0d2QoIi9Vc2Vycy9lZnJhaW1zaGluZS9EZXNrdG9wL3JuYV9zZXEvVENHQSIpCgpkYXRhKCJYZW5hRGF0YSIpCndyaXRlLmNzdihYZW5hRGF0YSwgIjAwX3RibFhlbmFIdWJJbmZvLmNzdiIpCgojIyBzdGVwIDUtYQpHZW5lRXhwZWN0ZWRDbnRfdG9pbCA9IFhlbmFHZW5lcmF0ZShzdWJzZXQgPSBYZW5hSG9zdE5hbWVzID09ICJ0b2lsSHViIikgJT4lCiAgWGVuYUZpbHRlcihmaWx0ZXJDb2hvcnRzID0gIlRDR0EgVEFSR0VUIEdURXgiKSAlPiUKICBYZW5hRmlsdGVyKGZpbHRlckRhdGFzZXRzID0gIlRjZ2FUYXJnZXRHdGV4X2dlbmVfZXhwZWN0ZWRfY291bnQiKTsKWGVuYVF1ZXJ5KEdlbmVFeHBlY3RlZENudF90b2lsKSAlPiUKICBYZW5hRG93bmxvYWQoZGVzdGRpciA9ICIuLyIpCmBgYAoKYGBge3J9CmxpYnJhcnkoIlVDU0NYZW5hVG9vbHMiKQpsaWJyYXJ5KCJSLnV0aWxzIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJkYXRhLnRhYmxlIikKbGlicmFyeSgicmVhZHIiKQpsaWJyYXJ5KCJlZGdlUiIpCnNldHdkKCIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EiKQpzYW1wbGVzX2dlbmVfZXhwcmVzc2lvbiA9IGZyZWFkKCJUY2dhVGFyZ2V0R3RleF9nZW5lX2V4cGVjdGVkX2NvdW50Lmd6Iik7CgpgYGAKCgpgYGB7cn0KCnNldHdkKCIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EiKQpsaWJyYXJ5KCJkcGx5ciIpCmNyZWF0ZV9iYWNrX3RyYW5zZm9ybWVkX2RmIDwtIGZ1bmN0aW9uKHNhbXBsZV9maWxlLCBnZW5lX2V4cHJlc3Npb25fZGF0YSkgewogICMgUmVhZCB0aGUgc2FtcGxlIGxpc3QKICBsaXN0X2RhdGEgPC0gcmVhZC5jc3Yoc2FtcGxlX2ZpbGUsIGhlYWRlciA9IEZBTFNFKQogIHZlY3Rvcl9kYXRhIDwtIGxpc3RfZGF0YSRWMQoKICAjIEZpbHRlciBvdXQgZXhjbHVkZWQgc2FtcGxlcwogIGZpbHRlcmVkX3ZlY3RvciA8LSB2ZWN0b3JfZGF0YVt2ZWN0b3JfZGF0YSAlaW4lIGNvbG5hbWVzKGdlbmVfZXhwcmVzc2lvbl9kYXRhKV0KCgogICMgRmlsdGVyIHRoZSBnZW5lIGV4cHJlc3Npb24gZGF0YQogIGZpbHRlcmVkX2RmIDwtIGdlbmVfZXhwcmVzc2lvbl9kYXRhICU+JSBkcGx5cjo6c2VsZWN0KCJzYW1wbGUiLCBhbGxfb2YoZmlsdGVyZWRfdmVjdG9yKSkKICByb3duYW1lcyhmaWx0ZXJlZF9kZikgPC0gZmlsdGVyZWRfZGYkc2FtcGxlCiAgCiAgIyBCYWNrdHJhbnNmb3JtIHRoZSBudW1lcmljIGNvbHVtbnMKICBiYWNrdHJhbnNmb3JtZWRfZGYgPC0gZmlsdGVyZWRfZGYgJT4lCiAgICBtdXRhdGUoYWNyb3NzKHdoZXJlKGlzLm51bWVyaWMpLCB+IDJeLiAtIDEpKQogIHJvd25hbWVzKGJhY2t0cmFuc2Zvcm1lZF9kZikgPC0gYmFja3RyYW5zZm9ybWVkX2RmJHNhbXBsZQogICMgU2V0IHJvdyBuYW1lcyBhbmQgcmVtb3ZlIHRoZSBmaXJzdCBjb2x1bW4KCiAgcmV0dXJuKGJhY2t0cmFuc2Zvcm1lZF9kZikKfQoKZzZwZF9kZWxldGVkX3NhbXBsZXNfZmlsZSA8LSAiZzZwZF9kZWxldGVkX3NhbXBsZXMuY3N2Igojc2FtcGxlX2ZpbGVfZzZwZF9jb250cm9sX25vcm1hbF9leHByZXNzaW9uX2ZpbGUgPSAiZzZwZF9ub3JtYWxfc2FtcGxlc19jb250cm9sX2dyb3VwLmNzdiIKc2FtcGxlX2ZpbGVfZzZwZF9jb250cm9sX25vcm1hbF9leHByZXNzaW9uX2ZpbGUgPSAiRzZQRF9ub3JtYWxfY2FuY2VyX3R5cGVfYmFzZWRfc2VsZWN0aW9uX25vdF9tZXRhc3RhdGljLmNzdiIKCiMgQ2FsbCB0aGUgZnVuY3Rpb24gYW5kIHN0b3JlIHRoZSByZXN1bHQKZzZwZF9kZWxfZGYgPC0gY3JlYXRlX2JhY2tfdHJhbnNmb3JtZWRfZGYoZzZwZF9kZWxldGVkX3NhbXBsZXNfZmlsZSwgc2FtcGxlc19nZW5lX2V4cHJlc3Npb24pCmc2cGRfbm9ybWFsX2NvbnRyb2xfZGYgPC0gY3JlYXRlX2JhY2tfdHJhbnNmb3JtZWRfZGYoc2FtcGxlX2ZpbGVfZzZwZF9jb250cm9sX25vcm1hbF9leHByZXNzaW9uX2ZpbGUsIHNhbXBsZXNfZ2VuZV9leHByZXNzaW9uKQpoZWFkKGc2cGRfbm9ybWFsX2NvbnRyb2xfZGZbLCAxOjEwXSwgMTApCmhlYWQoZzZwZF9kZWxfZGZbLCAxOjEwXSwgMTApCmc2cGRfbm9ybWFsX2NvbnRyb2xfZGYKZzZwZF9kZWxfZGYKCmBgYApgYGB7cn0KIyBjaGVja2luZyBjb250cm9sIGRhdGEgZnJhbWUgc2FtcGxlcwojIGN0cl9ybmFtZXMgPC0gY29sbmFtZXMoZzZwZF9ub3JtYWxfY29udHJvbF9kZlssLTFdKQojIGN0cl9vcmlnX2RmIDwtIHJlYWQuY3N2KCIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EvZzZwZF9oaWdoX2V4cF8xLjc1dG8yLjI1X3pfc2NvcmVfc2FtcGxlc19uYW1lcy5jc3YiKQojIGN0cl9vcmlnX2RmCiMgY3RyX3JuYW1lcwojIGNvbW1vbl9uYW1lcyA8LSBpbnRlcnNlY3QoY3RyX3JuYW1lcyxjdHJfb3JpZ19kZiRTYW1wbGUuSUQpCiMgY29tbW9uX25hbWVzCiMgcHJpbnQoY29tbW9uX25hbWVzKQoKYGBgCgoKCmBgYHtyfQojIERlZmluZSB0aGUgYXJndW1lbnRzCmxpYnJhcnkoImRhdGEudGFibGUiKQpsaWJyYXJ5KCJyZWFkciIpCmxpYnJhcnkoImRwbHlyIikKbGlicmFyeSgiZWRnZVIiKQoKCgoKIyBBZGQgcHJlZml4ZXMgdG8gY29sdW1uIG5hbWVzCmNvbG5hbWVzKGc2cGRfZGVsX2RmKSA8LSBwYXN0ZTAoIkRFTEVfIiwgY29sbmFtZXMoZzZwZF9kZWxfZGYpKQpjb2xuYW1lcyhnNnBkX25vcm1hbF9jb250cm9sX2RmKSA8LSBwYXN0ZTAoIk5PUk1fIiwgY29sbmFtZXMoZzZwZF9ub3JtYWxfY29udHJvbF9kZikpCgojIENvbWJpbmUgdGhlIGRhdGEgZnJhbWVzIGJ5IHJvd3MKbWVyZ2VkX2RmIDwtIG1lcmdlKGc2cGRfZGVsX2RmLCBnNnBkX25vcm1hbF9jb250cm9sX2RmLCBieS54PSJERUxFX3NhbXBsZSIsYnkueSA9ICJOT1JNX3NhbXBsZSIpCmNvbG5hbWVzKG1lcmdlZF9kZilbY29sbmFtZXMobWVyZ2VkX2RmKSA9PSAiREVMRV9zYW1wbGUiXSA8LSAic2FtcGxlIgojIHJvd25hbWVzKG1lcmdlZF9kZikgPC0gbWVyZ2VkX2RmJHNhbXBsZQojIG1lcmdlZF9kZiRzYW1wbGUgPC0gTlVMTAoKIyByb3duYW1lcyhnNnBkX2RlbF9kZikgPC0gZzZwZF9kZWxfZGYkREVMRV9zYW1wbGUKIyBnNnBkX2RlbF9kZiRERUxFX3NhbXBsZSA8LSBOVUxMCgojIHJvd25hbWVzKGc2cGRfbm9ybWFsX2NvbnRyb2xfZGYpIDwtIGc2cGRfbm9ybWFsX2NvbnRyb2xfZGYkTk9STV9zYW1wbGUKIyBnNnBkX25vcm1hbF9jb250cm9sX2RmJE5PUk1fc2FtcGxlIDwtIE5VTEwKbWVyZ2VkX2RmCgoKYGBgCgoKYGBge3J9Cm1lcmdlZF9kZl9yb3duYW1lcyA8LSBtZXJnZWRfZGZbLC0xXQpyb3duYW1lcyhtZXJnZWRfZGZfcm93bmFtZXMpIDwtIG1lcmdlZF9kZiRzYW1wbGUKIyBtZXJnZWRfZGZfcm91bmRfdmVjdG9yIDwtIGxhcHBseShtZXJnZWRfZGZfcm93bmFtZXMsIHJvdW5kICwgZGlnaXRzID0gMikKIyBtZXJnZWRfZGZfcm93bmFtZXNfcm91bmRlZCA8LSBkYXRhLmZyYW1lKG1lcmdlZF9kZl9yb3VuZF92ZWN0b3IpCiNyb3duYW1lcyhtZXJnZWRfZGZfcm93bmFtZXNfcm91bmRlZCkgPC0gcm93bmFtZXMobWVyZ2VkX2RmX3Jvd25hbWVzKQptZXJnZWRfZGZfcm93bmFtZXNfcm91bmRlZCA8LSBtZXJnZWRfZGZfcm93bmFtZXMgJT4lIG11dGF0ZShhY3Jvc3Mod2hlcmUoaXMubnVtZXJpYyksIHJvdW5kLCBkaWdpdHMgPSAwKSkKbWF0cml4X2Zvcl9kZXNlcSA8LSBhcy5tYXRyaXgobWVyZ2VkX2RmX3Jvd25hbWVzX3JvdW5kZWQpCnJvd25hbWVzKG1hdHJpeF9mb3JfZGVzZXEpIDwtIHJvd25hbWVzKG1lcmdlZF9kZl9yb3duYW1lc19yb3VuZGVkKQptZXJnZWRfZGZfcm93bmFtZXMKbWVyZ2VkX2RmX3Jvd25hbWVzX3JvdW5kZWQKYGBgCgoKCmBgYHtyfQoKc2V0d2QoIi9Vc2Vycy9lZnJhaW1zaGluZS9EZXNrdG9wL3JuYV9zZXEvVENHQSIpCgptZXRhZGF0YSA8LSBkYXRhLmZyYW1lKHNhbXBsZV9uYW1lcyA8LSBjb2xuYW1lcyhtZXJnZWRfZGZbLC0xXSkpCiNyb3cubmFtZXMobWV0YWRhdGEpIDwtIGNvbG5hbWVzKG1lcmdlZF9kZikKICBtZXRhZGF0YSA8LSBtdXRhdGUobWV0YWRhdGEsIEc2UERfU1RBVFVTID0gaWZlbHNlKHJvd19udW1iZXIoKSA8PSBsZW5ndGgoZzZwZF9kZWxfZGZbLC0xXSksICJkZWwiLCAibm9ybWFsIikpCgptZXRhZGF0YV9ybmFtZXMgPC0gbWV0YWRhdGEKcm93bmFtZXMobWV0YWRhdGFfcm5hbWVzKSA8LSBtZXRhZGF0YSRzYW1wbGVfbmFtZXMuLi4uY29sbmFtZXMubWVyZ2VkX2RmCm1ldGFkYXRhX3JuYW1lcyRzYW1wbGVfbmFtZXMuLi4uY29sbmFtZXMubWVyZ2VkX2RmLi4uLjEuLiA8LSBOVUxMCm1ldGFkYXRhCm1ldGFkYXRhX3JuYW1lcwoKCgpgYGAKCmBgYHtyfQojICMgbWV0YWRhdGEgPC0gbXV0YXRlKG1ldGFkYXRhLCBHNlBEX1NUQVRVUyA9IGlmZWxzZShyb3dfbnVtYmVyKCkgPD0gbGVuZ3RoKGc2cGRfZGVsX2RmWywtMV0pLCAiZGVsIiwgIm5vcm1hbCIpKQojIAojIHNldHdkKCIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EiKQojIG1ldGFkYXRhX3JuYW1lc19mb3JfaW5mb19tZXJnZSA8LSBtZXRhZGF0YV9ybmFtZXMKIyBtZXRhZGF0YV9ybmFtZXNfZm9yX2luZm9fbWVyZ2UKIyAjZXhwYW5kaW5nIG1ldGEgZGF0YSBpbmZvcm1hdGlvbiBmb3IgYW5hbHlzaXMgb2YgZzZwZCBkZWxldGVkIHNhbXBsZXMgVlMgMjAwIGc2cGQgbm9ybWFsIHNhbXBsZXMgZnJvbSB0aGUgY2VudGVyIG9mIGc2cGQgZXhwcmVzc2lvbiBpbmZvcm1hdGlvbgojIGxpYnJhcnkoImRwbHlyIikKIyAKIyBzYW1wbGVzX2luZm9fZGVsZXRlZF92c18yMDBfcGF0aWVudHMgPC0gcmVhZF90c3YoImc2cGRfc2FtcGxlc19pbmZvX2RlbGV0ZWRfdnNfdHdvX2h1bmRyZWRzLnRzdiIpCiMgc2FtcGxlc19pbmZvX2RlbGV0ZWRfdnNfMjAwX3BhdGllbnRzIDwtIGFzLmRhdGEuZnJhbWUoc2FtcGxlc19pbmZvX2RlbGV0ZWRfdnNfMjAwX3BhdGllbnRzKSAlPiUgZHBseXI6OnNlbGVjdChgU2FtcGxlIElEYCxgQ2FuY2VyIFR5cGVgLGBDYW5jZXIgVHlwZSBEZXRhaWxlZGApCiMgCiMgIyBtZXJlZ2UgbWV0YWRhdGEgd2l0aCBpbmZvIGRmCiMgcm93Lm5hbWVzKG1ldGFkYXRhX3JuYW1lc19mb3JfaW5mb19tZXJnZSkgPC0gZ3N1YigiXlteX10qXyIsICIiLCByb3cubmFtZXMobWV0YWRhdGFfcm5hbWVzX2Zvcl9pbmZvX21lcmdlKSkKIyAKIyBtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mbyA8LSBtZXJnZShtZXRhZGF0YV9ybmFtZXNfZm9yX2luZm9fbWVyZ2Usc2FtcGxlc19pbmZvX2RlbGV0ZWRfdnNfMjAwX3BhdGllbnRzLCBieS54ID0gInJvdy5uYW1lcyIsIGJ5LnkgPSAiU2FtcGxlIElEIixhbGwueCA9IFRSVUUpCiMgcm93Lm5hbWVzKG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvKSA8LSBtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mbyRSb3cubmFtZXMKIyBtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mbyRSb3cubmFtZXMgPC0gTlVMTAojIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvIDwtIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvW29yZGVyKG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvJEc2UERfU1RBVFVTKSwgXQojIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCA8LSBtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mb1ttYXRjaChyb3cubmFtZXMobWV0YWRhdGFfcm5hbWVzX2Zvcl9pbmZvX21lcmdlKSwgcm93Lm5hbWVzKG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvKSksIF0KIyAKIyByb3cubmFtZXMobWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkKSA8LSByb3cubmFtZXMobWV0YWRhdGFfcm5hbWVzKQojIGNvbG5hbWVzKG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZClbMl0gPC0gImNhbmNlcl90eXBlIgojIGNvbG5hbWVzKG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZClbM10gPC0gImNhbmNlcl90eXBlX2RldGFpbGVkIgojIAojIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCRjYW5jZXJfdHlwZSA8LSBhcy5mYWN0b3IobWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkJGNhbmNlcl90eXBlKQojIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCRjYW5jZXJfdHlwZV9kZXRhaWxlZCA8LSBhcy5mYWN0b3IobWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkJGNhbmNlcl90eXBlX2RldGFpbGVkKQojIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvCiMgbWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkCgpgYGAKCgoKCmBgYHtyfQpuYW1lc19kZiA8LSBhcy5kYXRhLmZyYW1lKGRhdGFfY29sIDwtIGNvbG5hbWVzKG1hdHJpeF9mb3JfZGVzZXEpLG1ldGFkYXRhcm93cyA8LSByb3duYW1lcyhtZXRhZGF0YV9ybmFtZXMpKQpuYW1lc19kZiRgZGF0YV9jb2wgPC0gY29sbmFtZXMobWF0cml4X2Zvcl9kZXNlcSlgID09IHJvd25hbWVzKG5hbWVzX2RmKQpuYW1lc19kZgpgYGAKCgpgYGB7cn0KbGlicmFyeSgiREVTZXEyIikKZGRzIDwtIERFU2VxRGF0YVNldEZyb21NYXRyaXgoY291bnREYXRhID0gbWF0cml4X2Zvcl9kZXNlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sRGF0YSA9IG1ldGFkYXRhX3JuYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduID0gfiBHNlBEX1NUQVRVUykKZGRzJEc2UERfU1RBVFVTIDwtIHJlbGV2ZWwoZGRzJEc2UERfU1RBVFVTLCByZWYgPSAibm9ybWFsIikKZGRzCmBgYApgYGB7cn0KZGRzIDwtIERFU2VxKGRkcykKcmVzIDwtIHJlc3VsdHMoZGRzKQpyZXMKYGBgCgpgYGB7cn0KcmVzdWx0c05hbWVzKGRkcykKCmBgYApgYGB7cn0KcmVzT3JkZXJlZCA8LSByZXNbb3JkZXIocmVzJHB2YWx1ZSksXQpzdW1tYXJ5KHJlcykKYGBgCmBgYHtyfQpzdW0ocmVzJHBhZGogPCAwLjA1LCBuYS5ybT1UUlVFKQpgYGAKYGBge3J9CnJlczA1IDwtIHJlc3VsdHMoZGRzLCBhbHBoYT0wLjA1KQpzdW1tYXJ5KHJlczA1KQpgYGAKYGBge3J9CnBsb3RNQShyZXMsIHlsaW09YygtMiwyKSkKYGBgCgoKCgpgYGB7cn0KIyByZXNTaWcgPC0gc3Vic2V0KHJlc09yZGVyZWQsIHBhZGogPCAwLjA1KQojIHJlc1NpZwojIHdyaXRlLmNzdihhcy5kYXRhLmZyYW1lKHJlc1NpZyksIAojICAgICAgICAgICBmaWxlPSIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EvRzZQRF9hYm92ZXBhZGpfMC4wNS5jc3YiKQpgYGAKYGBge3J9CiMgI2ZpbHRlcmluZyB0aGUgcmVzdWx0cwojIHJlc3VsdHNfZGYgPC0gcmVhZC5jc3YoIi9Vc2Vycy9lZnJhaW1zaGluZS9EZXNrdG9wL3JuYV9zZXEvVENHQS9HNlBEX2Fib3ZlcGFkal8wLjA1LmNzdiIpCiMgcmVzdWx0c19kZgojIHJlc3VsdHNfZmlsdGVyZWQgPC0gcmVzdWx0c19kZiAlPiUgZmlsdGVyKGxvZzJGb2xkQ2hhbmdlID4wICxwYWRqIDwgMC4wNSkKIyByZXN1bHRzX2ZpbHRlcmVkCiMgd3JpdGUuY3N2KGFzLmRhdGEuZnJhbWUocmVzdWx0c19maWx0ZXJlZCksIAojICAgICAgICAgICBmaWxlPSIvVXNlcnMvZWZyYWltc2hpbmUvRGVza3RvcC9ybmFfc2VxL1RDR0EvZGVzZXEyX3Jlc19nNnBkL0c2UERfcmVzdWx0c19maWx0ZXJlZC5jc3YiKQpgYGAKYGBge3J9CiMgY2x1c3RlcmluZwpsaWJyYXJ5KGNsdXN0ZXJQcm9maWxlcikKbGlicmFyeShvcmcuSHMuZWcuZGIpCmxpYnJhcnkoQW5ub3RhdGlvbkRiaSkKYGBgCgoKYGBge3J9CiMgcmVzdWx0cyBhcyBpbiB0dXRvcmlhbCBub3RlYm9vawpzaWdzIDwtIG5hLm9taXQocmVzKQpzaWdzIApzaWdzIDwtIHNpZ3Nbc2lncyRwYWRqIDwgMC4wNSAmIHNpZ3MkYmFzZU1lYW4gPiA1MCxdCnNpZ3MKZ2VuZXNfdG9fdGVzdCA8LSByb3duYW1lcyhzaWdzW3NpZ3MkbG9nMkZvbGRDaGFuZ2UgPiAwLjUsXSkgCgpnZW5lc190b190ZXN0X25vX2RvdHMgPC0gZ3N1YigiXFwuLioiLCAiIiwgZ2VuZXNfdG9fdGVzdCkKCgpyZXNfZm9yX2dzZWEgPC0gcmVzW3JlcyRiYXNlTWVhbiA+IDUwLF0gCnJlc19mb3JfZ3NlYSA8LSByZXNfZm9yX2dzZWFbb3JkZXIoLXJlc19mb3JfZ3NlYSRsb2cyRm9sZENoYW5nZSksXQpyZXNfZm9yX2dzZWEgCgpnZW5lc19mb3JfZ3NlYSA8LSByZXNfZm9yX2dzZWEkbG9nMkZvbGRDaGFuZ2UKbmFtZXMoZ2VuZXNfZm9yX2dzZWEpIDwtIGdzdWIoIlxcLi4qIiwgIiIsIHJvd25hbWVzKHJlc19mb3JfZ3NlYSkpCgpnZW5lc19mb3JfZ3NlYQoKCgpgYGAKYGBge3J9CiMgI0dPIGFuYWx5c2lzCiMgR09fcmVzdWx0cyA8LSBlbnJpY2hHTyhnZW5lID0gZ2VuZXNfdG9fdGVzdF9ub19kb3RzLCBPcmdEYiA9ICJvcmcuSHMuZWcuZGIiLCBrZXlUeXBlID0gIkVOU0VNQkwiLCBvbnQgPSAiQlAiKQojIHBhdGhfZGZfZW5yaWNoIDwtIGFzLmRhdGEuZnJhbWUoR09fcmVzdWx0cykKCgpgYGAKCgpgYGB7cn0KZ3NlYV9yZXNfYmlnX2N0ciA8LSBnc2VHTyhnZW5lc19mb3JfZ3NlYSwKICAgICAgICAgICAgIG9udCA9ICJCUCIsCiAgICAgICAgICAgICBrZXlUeXBlID0gIkVOU0VNQkwiLAogICAgICAgICAgICAgT3JnRGIgPSAib3JnLkhzLmVnLmRiIiwKICAgICAgICAgICAgIGVwcyA9IDFlLTMwMCwKICAgICAgICAgICAgIHB2YWx1ZUN1dG9mZiA9IDEpCmBgYApgYGB7cn0KCmdzZWFfcmVzdWx0c19kZiA8LSBhcy5kYXRhLmZyYW1lKGdzZWFfcmVzX2JpZ19jdHIpCmdzZWFfcmVzdWx0c19kZgpgYGAKYGBge3J9CmZpdF9nc2VhIDwtIGdzZWFwbG90KGdzZWFfcmVzX2JpZ19jdHIsIGdlbmVTZXRJRCA9ICJHTzowMDA2NjM1Iix0aXRsZSA9ICJmYXR0eSBhY2lkIGJldGEtb3hpZGF0aW9uIikKZml0X2dzZWEKCmBgYApgYGB7cn0KCmdzZWFfcmVzdWx0c19kZiAlPiUgZmlsdGVyKElEID09IkdPOjAwMDY2MzUiKQpgYGAKCgoKYGBge3J9CmZpdCA8LSBwbG90KGJhcnBsb3QoR09fcmVzdWx0cywgc2hvd0NhdGVnb3J5ID0gMjApKQpwbmcoIm91dC5wbmciLCByZXMgPSAyNTAsIHdpZHRoID0gMTQwMCwgaGVpZ2h0ID0gMTgwMCkKcHJpbnQoZml0KQpkZXYub2ZmKCkKCmBgYAoKCmBgYHtyfQojIEdPX3Jlc3VsdHMgPC0gZW5yaWNoZXIoKQojIGFzLmRhdGEuZnJhbWUoR09fcmVzdWx0cykKYGBgCgoKYGBge3J9CiMgcHJlcGFlciBtZXRhIGRhdGEgZm9yIG11bHRpIGZhY3RvciBhbmFseXNpcyAKbWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkCm1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCRHNlBEX1NUQVRVUyA8LSBmYWN0b3IobWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkJEc2UERfU1RBVFVTKQp0YWJsZShtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mb19vcmRlcmQkY2FuY2VyX3R5cGUsIG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCRHNlBEX1NUQVRVUykKbWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkJGNhbmNlcl90eXBlIDwtIGRyb3BsZXZlbHMobWV0YWRhdGFfcm5hbWVzX21lcmdlZF93aXRoX2luZm9fb3JkZXJkJGNhbmNlcl90eXBlKQptZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mb19vcmRlcmQkRzZQRF9TVEFUVVMgPC0gZHJvcGxldmVscyhtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mb19vcmRlcmQkRzZQRF9TVEFUVVMpCm1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZApgYGAKCgoKYGBge3J9CiMgI211bHRpIGZhY3RvciBhbmFseXNpcyAKIyBtZXRhZGF0YV9ybmFtZXNfbWVyZ2VkX3dpdGhfaW5mb19vcmRlcmQKIyBsaWJyYXJ5KERFU2VxMikKIyBkZHNNRiA8LSBERVNlcURhdGFTZXRGcm9tTWF0cml4KGNvdW50RGF0YSA9IG1hdHJpeF9mb3JfZGVzZXEsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sRGF0YSA9IG1ldGFkYXRhX3JuYW1lc19tZXJnZWRfd2l0aF9pbmZvX29yZGVyZCwKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ24gPSB+IGNhbmNlcl90eXBlICsgRzZQRF9TVEFUVVMgKyBjYW5jZXJfdHlwZTpHNlBEX1NUQVRVUykKIyBkZHNNRiRHNlBEX1NUQVRVUyA8LSByZWxldmVsKGRkc01GJEc2UERfU1RBVFVTLCByZWYgPSAibm9ybWFsIikKIyBkZHNNRiA8LSBERVNlcShkZHNNRikKIyAjZGVzaWduKGRkc01GKSA8LSBmb3JtdWxhKH4gY2FuY2VyX3R5cGUgKyBHNlBEX1NUQVRVUykKIyAjIGxldmVscyhkZHNNRiRgQ2FuY2VyIFR5cGVgKQojICMgbGV2ZWxzKGRkc01GJGBDYW5jZXIgVHlwZWApIDwtIHN1YigiLS4qIiwgIiIsIGxldmVscyhkZHNNRiRgQ2FuY2VyIFR5cGVgKSkKIyAjIGxldmVscyhkZHNNRiRgQ2FuY2VyIFR5cGVgKXMKCgpgYGAKYGBge3J9CmRkc01GX3Jlc3VsdHMgPC0gcmVzdWx0cyhkZHNNRixjb250cmFzdCA9IGMoKSkKc3VtbWFyeShkZHNNRl9yZXN1bHRzKQpyZXN1bHRzTmFtZXMoZGRzTUZfcmVzdWx0cykKYGBgCmBgYHtyfQpuYW1lcyhhcy5kYXRhLmZyYW1lKGNvZWYoZGRzTUYpKSkKYGBgCgpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ21kK09wdGlvbitJKi4KCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ21kK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuIAoKVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLgoK